This invention relates to packet communication and, more particularly, to fee-based communication across multiple packet networks.
Most US telecommunication providers currently employ packet networks to transport both voice and data signals. Such a network, shown in FIG. 1, transports information in packets that are routed from router to router (e.g. from router 301 to router 302), via links (e.g., 303), from an originating point in the network to a terminating point in the network.
FIG. 1 depicts a typical arrangement for coupling a user 11 in one location (for example, New York) to a user 12 in another location (for example, Los Angeles). User 11 is connected to a local circuit-switched network 100 in New York (e.g., Verizon), and more particularly to a central office 12 within network 100. Similarly, user 21 is connected to a local circuit-switched network 200 in Los Angeles (e.g., PacTel), and more particularly to a central office 22 within network 200.
When a call from user 11 to user 21 is assigned to traverse packet network 300 that employs, for example, the IP protocol, central office 12 sends signaling information to VoIP gateway 10 that couples network 100 to packet network 300. Gateway 10 translates and converts the received signaling information to a chosen signaling format, for example Media Gateway Control Protocol (MGCP) over IP, and forwards the signaling packets to call agent 15. The signaling packets contain information such as the identity of the called party and the identity of the calling party. Call agent 15 queries database 16 (with the destination of called party 21) to identify an appropriate call agent for completing the connection, and receives the IP address of PacTel call agent 25. Call agent 15 then sends an Initial Address Message (IAM) to call agent 25, requesting the IP address of the appropriate VoIP gateway for completing the call. Call agent 25 queries its database (26), obtains the IP address of VoIP 20, and forwards that information in an Address Complete Message (ACM) to call agent 15. The communication path between the call agents is not shown, for sake of clarity. The communication itself can employ the Bearer Independent Call Control (BICC) protocol. The IP address of VoIP gateway 10 is communicated to VoIP gateway 20 by call agent 25, the IP address of VoIP gateway 20 is communicated to VoIP gateway 10 by call agent 15, and henceforth gateways 10 and 20 can communicate using the respective IP addresses by employing, for example, Real-Time Protocol (RTP).
Although the FIG. 1 arrangement depicts VoIP gateways 10 and 20 coupling packet network 300 to respective Public Switched Telephone Networks (PSTNs) 100 and 200, they can be connected directly to user devices such as telephones. The functionality of a VoIP gateway can even be embedded in devices to form packet phones or integrated packet-circuit voice integrated switching systems. When embedded in Customer Premises Equipment such gateways are sometimes called Media Terminal Adapters (MTAs). These can also be called untrusted end points. Call agents are sometimes called Call Servers or Call Proxy Servers.
When there are multiple call agents in a network arrangement, as shown in FIG. 1, each one typically communicates with a subset of gateways under its control. Each of these subsets is a domain. When it is desired to set up a call between domains, for example, domains 306 and 307, the respective call agents communicate with each other, as described above.
In the above example, network 300 was chosen to employ the Internet Protocol (IP), but it should be understood that Asynchronous Transfer Mode (ATM), Frame Relay (FR) or any other packet protocol that is suitable for transporting voice packets may be employed. The call set-up procedure for non-IP packet networks is similar to the procedure outlined above for IP networks.
A highly desirable characteristic of the FIG. 1 arrangement is the separation of Call Control from Connection Control. In this model, the techniques, signaling messages, procedures, etc., used to establish the logical voice connection between end-users is independent of the techniques, signaling messages, procedures etc., used to establish the connection that carries the voice packets in the packet network. In this way, customers can have and retain the same voice features regardless of whether the underlying transport technology is circuit-switched or packet-switched and regardless of what packet protocol is used, as long as it meets the basic requirements for a voice connection.
As long as the packet network is a single and homogeneous network, packets can travel throughout the network unimpeded, as implied by FIG. 1. However, neither Verizon nor PacTel own a packet network that extends from New York to Los Angeles, and their networks do not even meet. That presents no technological problem when the individual networks that comprise packet network 300 employ the same formats and the same protocols. When they do not, however, the packet voice must be converted from a first format and protocol to a second format and protocol; often via an intermediate step of converting signals to conventional circuit-switched format. This is typically done through a pair of back-to-back gateways. Even if the various networks that comprise network 300 use identical protocols, when the networks are owned by different entities the back-to-back gateways are nevertheless used at the interfaces where network ownership changes. The reason for this is quite simple: both Verizon and PacTel want to get paid for providing the connection between users 11 and 12, and the back-to-back gateways at the interfaces where ownership changes can exercise the desired connection control. Otherwise, one or both of the telecommunication providers might get shortchanged.
For example, once gateways 10 and 20 have obtained each other's IP addresses, there is no reason for them to use the call agents to set up the call. Of course, when gateway 10 is under control of the telecommunication service provider of domain 306, user 11 cannot communicate over network 300 without permission from the provider. However, as indicated above, MTAs connect directly to the packet network, and those are not under control of the telecommunication service provider.
While obtaining transmission for “free” might be fine for the public Internet, a carrier that provides an IP based network that meets strict Quality of Service (QoS) objectives required for high quality voice believes to be entitled to be compensated for the use of this IP network. The process that insures the compensation is under control of the call agent, where all billing for usage as well as any special call features may be centralized. In addition, voice is usually billed on a duration basis, not a packet basis, and the packet network has no knowledge of call duration. Therefore, it is required that gateways 10 and 20 (or corresponding MTAs) be allowed to send packets to each only when allowed by the call agents.
If, instead, one were to decide to bill on a packet usage basis, governed by the IP network, the gateways might use the call agent to exchange IP addresses but never use the IP network to exchange voice packets, preferring to use some other (cheaper) network. Therefore, even in the case of billing on a packet usage basis, it is required that there be an affirmative control by the call agent of the connections through network 300.
Another consideration is that, for security reasons, users may not want their “true” IP address to be disclosed to others. This is particularly true if a user is in a private network behind a proxy firewall.
One solution to this problem is presented in FIG. 2, where call agent 15 communicates with a special router 313 at the edge of domain 306 (via line 308), and call agent 25 communicates with special router 323 at the edge of domain 307 (via line 309). These special edge switches route packets only if they carry an IP address that was explicitly authorized by a call agent. In specifying the authorized IP addresses, the call agent is also able to specify the QoS level being paid for, and that provides the edge switches with information necessary to choose between packets that are to be routed vs. packets that are to be buffered, when the transmission load calls for buffering of some packets. To prohibit the gateways from being used without the packet network, the IP addresses are never communicated end to end. Call agent 25 maps the IP address that leads to user 21 into an arbitrary IP address and communicates the arbitrary/true IP address mapping to its edge switches. It then communicates the arbitrarily selected IP address to call agent 15 and, thence, to gateway 10. Similarly, call agent 15 maps the IP address that leads to user 11 into an arbitrary IP address and communicates the arbitrary/true IP address mapping of to its edge switches. It then communicates the arbitrarily selected IP address to call agent 25 and, thence, to gateway 20. In this way, gateways 10 and 20 never know the true IP addresses of each other.
There are a number of problems with this solution.
This solution requires precise timing between the packet network and the call agents. If the messages to the edge switches are sent too soon, customers can obtain free service (for a short duration); if too late, the voice path might not be established by the time gateway 20 is answered, resulting in clipping of the initial speech.
The call agent must know the characteristics of the packet network, because the procedures for establishing connections are different for each type, and the packet network may provide permanent connections (PVCs), temporary connections (SVCs), or no connections at all (as in IP).
An end-to-end connection may require several networks: private networks, local public networks, inter-exchange carrier networks, and/or international networks. This communication must take place in each of these separate networks, adding to the complexity.
For reliability, it is desirable to have the option to serve a particular gateway by any one of a multiple number of call agents and edge switches. However, for any given call, only one specific call agent/edge switch pair is involved. Reliably establishing the communication between the right ones in real time is difficult and requires the call agents to have accurate knowledge of the connection network topology as well as either additional network elements to keep the status of each call agent and edge switch and/or some kind of broadcast mechanism to insure the “right” edge switch gets the information. Additionally, in some cases (e.g. failure), the connection may even be re-established in the middle of a call, again, preferably without interaction with, or even knowledge of, the call agent. The issue of reliability is further complicated by the distributed nature of most edge switches themselves, with termination cards within the edge switch performing much if not all of the connection processing. The connection request will be received by one termination card, necessitating the same communication needs as between the call agent/edge switch, in that either the correct card must be identified and informed, or all requests must be broadcast to all cards.